(function(){
	powerTodo.DB = {};
	
	var db = Ti.Database.open('powertodo');
	db.execute('CREATE TABLE IF NOT EXISTS todos (id INTEGER PRIMARY KEY, title TEXT, duedate INTEGER) ');
	db.close();
	
	powerTodo.DB.getListOfTodo = function()
	{
		var data = [];
		
		var db = Ti.Database.open('powertodo');
		var rows = db.execute('SELECT * FROM todos ORDER BY duedate DESC');
		while(rows.isValidRow())
		{
			data.push({
				title:rows.getFieldByName('title'),
				id: rows.getFieldByName('id'),
				date: Number(rows.getFieldByName('duedate'))
			});
			
			rows.next();
		}
		rows.close();
		db.close();
		
		return data;
	};
	
	powerTodo.DB.getUrgentListOfTodo = function()
	{
		var data = [];
		var today = new Date();
		var afterTomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000)*2);
		
		var db = Ti.Database.open('powertodo');
		var rows = db.execute('SELECT * FROM todos WHERE duedate < ? AND duedate >= ? ORDER BY id DESC', afterTomorrow.getTime(), today.getTime());
		
		while(rows.isValidRow())
		{
			data.push({
				title:rows.getFieldByName('title'),
				id: rows.getFieldByName('id'),
				date: Number(rows.getFieldByName('duedate'))
			});
			
			rows.next();
		}
		rows.close();
		db.close();
		return data;
		
	};
	
	powerTodo.DB.getLateListOfTodo = function()
	{
		var data = [];
		var today = new Date();
		
		var db = Ti.Database.open('powertodo');
		var rows = db.execute('SELECT * FROM todos WHERE duedate < ? ORDER BY id DESC', today.getTime());
		
		while(rows.isValidRow())
		{
			data.push({
				title:rows.getFieldByName('title'),
				id: rows.getFieldByName('id'),
				date: Number(rows.getFieldByName('duedate'))
			});
			
			rows.next();
		}
		
		rows.close();
		db.close();
		return data;
		
	};
	
	powerTodo.DB.addTodo = function(_title, _duedate)
	{
		var db = Ti.Database.open('powertodo');
		db.execute('INSERT INTO todos (title, duedate) VALUES (?,?)', _title, _duedate);
		db.close();
		
		Ti.App.fireEvent("databaseUpdated");
	};
	
	powerTodo.DB.editTodo = function(_id, _title, _duedate)
	{
		var db = Ti.Database.open('powertodo');
		db.execute('UPDATE todos SET title = ?, duedate = ? WHERE id == ?', _title, _duedate, _id);
		db.close();
		
		Ti.App.fireEvent("databaseUpdated");
	};
	
	powerTodo.DB.deleteTodo = function(_id)
	{
		var db = Ti.Database.open('powertodo');
		db.execuste('DELETE FROM todos WHERE id = ?', _id);
		db.close();
		
		Ti.App.fireEvent("databaseUpdated");
	};
	
	powerTodo.DB.getTodo = function(_id)
	{
		var db = Ti.Database.open('powertodo');
		var rows = db.execute('SELECT * FROM todos WHERE id = ?', _id);
		if(rows.isValidRow())
		{
			var data = {
				title: rows.getFieldByName('title'),
				id: rows.getFieldByName('id'),
				date: Number(rows.getFieldByName('duedate'))
			};
		}
		
		rows.close();
		db.close();
		
		return data;
	};
	
	
	
	
})()
